package your_car_status

class Services {

    Date date 
    //          LAVADO
    double priceGeneralCleaning //Lavado general
    double priceMotorCleaning //Lavado de motor
    double priceInnerCleaning //Lavado de tapicería
    double priceGraphitizedChassis //Grafitado chasis

    //          FRENOS
    double priceGeneralChecking //Revisión general de frenos
    double priceFrontDiscChange //Cambios discos delanteros
    double priceDiscVerification //Rectificación de discos
    double priceABSSystemScan //Escanear sistema ABS

    //          SINCRONIZACIÓN
    double priceCarburetorSystem //Sistema carburador
    double priceInjectionSystem //Sistema de inyección
    double priceInjectionChange //Cambios de inyecciones
    double priceScan //Escanear
    double priceInjectionCleaning //Lavado de inyectores

    //          ALINEACIÓN DE DIRECCIÓN Y BALANCEO
    double princeDirectionAlignment//Alineación de dirección (Delantera)
    double priceWheelBalancingRegular //Balanceo por rin corriente
    double priceWheelBalancingLuxury //Balanceo por rin luxo
    double priceWheelRectificationRegular//Rectificación de rin corriente
    double priceWheelRectificationLuxury //Rectificación de rin luxo

    //          MANTENIMIENTO LLANTAS
    double priceRepairWheelRegular //Despinche llanta corriente
    double priceRepairWheelArmored //Despinche llanta blindada
    double priceRepairWheelTubeless//Despinche llanta sellomatica
    double pricePutWheelRegular //Montaje de llanta corriente
    double pricePutWheelArmored //Montaje de llanta blindada
    double priceRepairWheel//Reparación de llanta (Parche o vulcanizado)

    //          GASES
    double priceGasTest//Analisis de gases

    //          EMBRAGUE
    double priceClutch//Revision y reparación sistema de embrague

    //          SUSPENSIÓN
    double priceFrontShockChange //Cambio amortiguadores delanteros
    double priceBackShockChange//Cambio amortiguadores traseros
    double priceSocketJointChange //Cambio rotulas superiores o inferiores
    double priceBushingChange//Cambio tijeras superiores o inferiores
    double priceFrontSwaybarChange //Cambio barra estabilizadora delantera
    double priceSpringChange//Cambio muelles ballesta

    //          MOTOR  
    double priceMotorFixing //Reparación de motor
    double priceRepairMotorPump//Reparación de la bomba del motor 
    
    //          CAJA
    double priceRepairDirectionBox //Reparación caja de dirección
    double priceRepairMVelocityBox //Reparación caja de velocidades mecánica
    double priceRepairAVelocityBox //Reparación caja de velocidades automática

    //          AIRE ACONDICIONADO
    double priceCheckingAirC //Revisión aire acondicionado
    double priceRepairAirC //Reparación aire acondicionado
    double priceRefillAirC //Recargar aire acondicionado

    static belongsTo = [vehicle : Vehicle]
    
    MechanicalTechnician mechanicalTechnician
    
    def total = {
        def sum=0
        sum = priceGeneralCleaning
        sum += priceMotorCleaning
        sum += priceInnerCleaning 
        sum += priceGraphitizedChassis
        sum += priceGeneralChecking 
        sum += priceFrontDiscChange 
        sum += priceDiscVerification 
        sum += priceABSSystemScan
        sum += priceCarburetorSystem
        sum += priceInjectionSystem
        sum += priceInjectionChange
        sum += priceScan
        sum += priceInjectionCleaning
        sum += princeDirectionAlignment
        sum += priceWheelBalancingRegular
        sum += priceWheelBalancingLuxury
        sum += priceWheelRectificationRegular
        sum += priceWheelRectificationLuxury
        sum += priceRepairWheelRegular
        sum += priceRepairWheelArmored
        sum += priceRepairWheelTubeless
        sum += pricePutWheelRegular
        sum += pricePutWheelArmored
        sum += priceRepairWheel
        sum += priceGasTest
        sum += priceClutch
        sum += priceFrontShockChange
        sum += priceBackShockChange
        sum += priceSocketJointChange
        sum += priceBushingChange
        sum += priceFrontSwaybarChange
        sum += priceSpringChange 
        sum += priceMotorFixing
        sum += priceRepairMotorPump
        sum += priceRepairDirectionBox
        sum += priceRepairMVelocityBox
        sum += priceRepairAVelocityBox
        sum += priceCheckingAirC
        sum += priceRepairAirC
        sum += priceRefillAirC
        return sum
    }
    
    static constraints = {
    }
}
